From 131719858d58da2721d381c11b3857fa10dd2138 Mon Sep 17 00:00:00 2001 From: Anton Larin Date: Sun, 31 Jan 2016 19:02:47 +0300 Subject: [PATCH] Add a test for --version flag interception --- tests/test_cargo_version.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/test_cargo_version.rs b/tests/test_cargo_version.rs index 0e19bbeea..debc32e40 100644 --- a/tests/test_cargo_version.rs +++ b/tests/test_cargo_version.rs @@ -16,3 +16,32 @@ test!(simple { cargo::version()))); }); + +#[derive(RustcDecodable)] +struct FooFlags { + flag_version: bool, +} + +fn real_main(flags: FooFlags, _config: &cargo::Config) -> + cargo::CliResult> { + if flags.flag_version { + Ok(Some("foo ".to_string())) + } else { + Ok(None) + } +} + +test!(subcommand_with_version_using_exec_main_without_stdin { + let usage = " +Usage: cargo foo [--version] + +Options: + -V, --version Print version info +"; + let args: Vec = vec!["cargo", "foo", "--version"] + .into_iter().map(|s| s.to_string()).collect(); + let result = cargo::call_main_without_stdin( + real_main, &cargo::Config::default().unwrap(), + usage, &args, false); + assert_eq!(result.unwrap(), Some("foo ".to_string())); +}); -- 2.30.2